//
// Created by F1997 on 2025/4/9.
//

#ifndef NETWORK_TRAFFIC_PROCESSING_DCE_DECODE_H
#define NETWORK_TRAFFIC_PROCESSING_DCE_DECODE_H
#include "../utils/pch.h"

/*
 * 大连行情解码
 *
 * */

class dce_decode {
public:
    static void parse_packet_dce(const struct pcap_pkthdr* pkthdr, const u_char* packet, MarketData& marketData);

#pragma pack(1)
    // ------ 大连
    // 9个字段，24字节
    struct DMDPHeader
    {
        uint16_t pkg_size;        // 报文长度。报文头和报文体总长度
        uint16_t pkg_type;        // 报文类型。唯一标记一种报文
        uint8_t version;          // 版本号。目前版本号为1。e8=1
        uint8_t flag;             // 消息结束标示符
        uint8_t mdg_no;           // 产品组号
        uint64_t start_seq_no;    // 开始消息编号
        uint8_t seq_num;          // 当flag不为0时，则此字段代表当前报文是当前行情消息的第几个报文
        uint64_t send_time;       //  L1、L2定时行情报文发送时间；UTC时间；精确到纳秒；其他报文中此字段为0
        int8_t reserved;          // 扩展长度字段。目前为0。42=0
    };
#pragma pack()

};


#endif //NETWORK_TRAFFIC_PROCESSING_DCE_DECODE_H
